package cn.wolfcode.education.mapper;

import cn.wolfcode.education.domain.RegularStu;
import cn.wolfcode.education.domain.SystemDictionaryItem;
import cn.wolfcode.education.query.QueryObject;
import cn.wolfcode.education.query.RegularStuQuery;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface RegularStuMapper {

    int insert(RegularStu record);

    RegularStu selectByPrimaryKey(Long id);

    List<RegularStu> selectAll();

    int updateByPrimaryKey(RegularStu record);

    List<RegularStu> queryForList(RegularStuQuery qo);

    Integer queryForCount(RegularStuQuery qo);

    void removeStu(Long id);

    void restStu(Long id);

    void recoverStu(Long id);

    void promote(@Param("id") Long id, @Param("classPromoteDate") Date classPromoteDate);

    void endRegularStu(Long id);

    void retentionRegularStu(@Param("regularStuId") Long regularStuId, @Param("classgradeId") Long classgradeId);

    List<SystemDictionaryItem> selectCampusBySystemDictionary();

    List<SystemDictionaryItem> selectAllCollegeBySystemDictionary();

    List<SystemDictionaryItem> selectAllPayment();

    List<SystemDictionaryItem> selectAllPaymentType();

    void updateCollections(RegularStu record);

    //查询正式学员报表
    List<Map<String, Object>> selectForRegularStuChart(QueryObject qo);

    // 获取所有学生
    List<Map<Long, Object>> getAllStu();
}